<?php
/**
 * @version        $Id: tags.php 1 2010-06-30 11:43:09Z tianya $
 * @package        DedeCMS.Site
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
 * @license        http://help.dedecms.com/usersguide/license.html
 * @link           http://www.dedecms.com
 */
require_once (dirname(__FILE__) . "/include/common.inc.php");
        $zip=new ZipArchive();
        $webroot = str_replace('\\','/',DEDEROOT.'/data');
        $path = str_replace($webroot.'/','',DEDEROOT);
        $zip_path = $path;

        if($zip->open($zip_path.'/123.zip', ZipArchive::OVERWRITE)=== TRUE){
            addFileToZip($path, $zip); //调用方法，对要打包的根目录进行操作，并将ZipArchive的对象传递给方法
            $zip->close(); //关闭处理的zip文件
          echo 'finish';
        }

    function addFileToZip($path,$zip){
        $handler=opendir($path); //打开当前文件夹由$path指定。
        while(($filename=readdir($handler))!==false){
            if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..'，不要对他们进行操作
                if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹，则递归
                    addFileToZip($path."/".$filename, $zip);
                }else{ //将文件加入zip对象
                    $re_path = $path;
                    $to_file_name = ltrim($re_path.'/'.$filename,'/');
                    $zip->addFile($path."/".$filename,$to_file_name);
                }
            }
        }
        @closedir($handler);
    }

